home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / dev / c / vbccwos.lha / vbcc / vbccwos.readme
Text File  |  1999-03-07  |  14KB  |  503 lines

  1. Short:    Free optimizing ANSI C compiler (PPC/WarpOS)
  2. Uploader: volker@vb.franken.de (Volker Barthelmann)
  3. Author:   volker@vb.franken.de (Volker Barthelmann)
  4. Type:     dev/c
  5. Version:  0.7
  6. Replaces: dev/c/vbcc.lha
  7.  
  8. vbcc - portable ANSI C compiler (c) in 1995-99 by Volker Barthelmann
  9.  
  10.  
  11. INTRODUCTION
  12.  
  13.     vbcc is a free portable and retargetable ANSI C compiler.
  14.  
  15.     This archive contains the compiler, preprocessor, assembler, linker,
  16.     frontend, message browser, startup codes, C-libraries, amiga.lib
  17.     replacements as well as several other tools for PPC/WarpOS.
  18.  
  19.     This gives you a complete system that allows to develop programs in
  20.     ANSI C as well as Amiga-specific programs (provided you obtain the
  21.     OS-includes) running on PPC/WarpOS.
  22.  
  23.     All major parts of this distribution (including compiler, preprocessor,
  24.     libraries etc.) have been compiled/assembled with this system and
  25.     apart from the OS-includes everything needed to rebuild vbcc,
  26.     the libraries and many of the other programs is contained in this
  27.     archive and the corresponding source archive.
  28.  
  29.     Note that the programs in this archive all run on the 68k. There is
  30.     another archive which contains compilers that run native under WarpOS.
  31.  
  32.  
  33. FEATURES
  34.  
  35.     vbcc..
  36.  
  37.     - comes with source
  38.  
  39.     - is free
  40.  
  41.     - is portable and retargetable
  42.  
  43.     - comes with a global optimizer that can e.g. do global common
  44.       subexpression elimination, constant propagation, function inlining
  45.       and several other optimizations (but is not yet finished and may
  46.       have some bugs)
  47.  
  48.     - should be ANSI compliant
  49.  
  50.     - can generate code that runs on a plain 68000 CPU
  51.  
  52.     - can generate code optimized for 020/030, 040 or 060
  53.  
  54.     - can generate code that uses the 68881/2, 68040/060 FPUs directly
  55.       and comes with appropriate math-libraries
  56.  
  57.     - can generate code that runs on PowerUp-boards
  58.  
  59.     - generates standard Amiga-68k-objects, PPC-ELF-objects or
  60.       WarpOS-EHF-objects
  61.  
  62.     - does not need too much memory
  63.  
  64.     - comes with a message browser
  65.  
  66.     - comes with a config program
  67.  
  68.     - offers a lot of error/warning messages that can be turned on/off
  69.       separately
  70.  
  71.  
  72. WHAT'S NEW
  73.  
  74.     Some changes since the last release:
  75.  
  76.     - bug fixes
  77.  
  78.     - new optimizations
  79.  
  80.     - much improved libaries
  81.  
  82.     - use of Frank Wille's linker vlink
  83.  
  84.     - support for PPC/WarpOS
  85.  
  86.     - support for small data for PPC/ELF
  87.  
  88.     - support for __saveds (68k, PPC/ELF and PPC/WarpOS)
  89.  
  90.     - support for __far (68k, PPC/EFL and PPC/WarpOS)
  91.  
  92.     - support for __chip (68k and PPC/WarpOS)
  93.  
  94.     - support for auto opening of libraries (68k, PPC/ELF and PPC/WarpOS)
  95.  
  96.     - cleaned up distributions for all three Amiga targets
  97.  
  98.     - checking for unresolved symbols for PPC/ELF
  99.  
  100.     - scheduler for PPC (ELF and WarpOS)
  101.  
  102.  
  103. REQUIREMENTS
  104.  
  105.     To use vbcc you need:
  106.  
  107.     - an Amiga with OS 2.0 or higher
  108.  
  109.     - enough RAM (it is possible to translate small programs with 1MB, but
  110.       for larger programs much more will be needed)
  111.  
  112.     Stuff that is not needed, but may be very useful:
  113.  
  114.     - harddisk
  115.  
  116.     - editor
  117.  
  118.     - make, touch etc.
  119.  
  120.     - the Amiga OS-includes (they can be found on certain CDs)
  121.  
  122.     - pipe-command (to use the message browser)
  123.  
  124.     Also you should know how to use the shell and you should know ANSI C
  125.     (if you need a book I recommend (like everyone) "The C Programming
  126.     Language, Second Edition, ANSI C" by Kernighan and Ritchie).
  127.  
  128.  
  129. LEGAL
  130.  
  131.     Note that this distribution contains several programs, libraries etc.
  132.     that are from different authors and are under different legal status.
  133.     So always read the corresponding doc/guide-file to find out under
  134.     what conditions a certain file may be used, distributed etc.
  135.  
  136.     For the most part you can assume that you may use everything for
  137.     non-commercial purposes and may distribute the unchanged archive
  138.     in whole.
  139.  
  140.     Changing any parts from this archive, distributing parts of it or
  141.     using it commercially might be legal for certain parts, but illegal
  142.     for others, so read all docs carefully before doing any of the above.
  143.  
  144.     This archive contains code written by (this list may be incomplete):
  145.  
  146.     Volker Barthelmann, Frank Wille, Thorsten Schaaps, Dennis Ritchie,
  147.     Matthias Fleischer, Gunther Nikl, Mike Schwartz, Kasper Graversen,
  148.     Johnny Tevessen, Andreas Heumann
  149.  
  150.     However, if you have any comments/problems etc. with anything, please
  151.     do not bother them, but write to me (volker@vb.franken.de) first.
  152.     Exceptions are the parts by Kasper Graversen and the WarpOS support
  153.     by Frank Wille.
  154.  
  155.  
  156. INSTALLATION/TUTORIAL
  157.  
  158.     [Names of directories, binaries or assigns have changed since earlier
  159.      versions as have config-files. So users of earlier versions should
  160.      read this again and do a complete re-install to avoid problems.]
  161.  
  162.     The first step (which you probably already did) is to extract the
  163.     entire archive (take care to preserve the file attributes). If you
  164.     have several archives of the vbcc distribution you can just extract
  165.     them all to the same place.
  166.  
  167.     The distributed programs are for the most part only usable from a shell.
  168.  
  169.     To use vbcc the following steps are necessary:
  170.  
  171.     1. Go to the subdirectory vbcc/machines/amiga.
  172.  
  173.     2. If you have the Amiga OS-includes copy them into the include
  174.        directory.
  175.  
  176.     3. Execute the script init_vbcc.
  177.  
  178.     4. If you compile larger projects it may be necessary to increase
  179.        the stack further.
  180.  
  181.     If you use vbcc frequently it is probably a good idea to add those
  182.     commands to your user-startup, shell-startup or similar.
  183.  
  184.     Now you should be able to use vbcc. E.g. if you want to compile and
  185.     link the program hello.c you can type
  186.  
  187.         vc +warpos hello.c
  188.  
  189.     This will compile and link the file hello.c and create the executable
  190.     a.out in the current directory.
  191.  
  192.         vc +warpos hello.c -o hello
  193.  
  194.     will do the same, but the created executable will be called hello.
  195.  
  196.         vc +warpos -c t1.c t2.c
  197.  
  198.     will compile t1.c and t2.c without linking, creating the object files
  199.     t1.o and t2.o.
  200.  
  201.         vc +warpos t1.o t2.o -o tt
  202.  
  203.     will link them together and create the executable tt.
  204.  
  205.     If your program uses floating point add -lm to the commandline
  206.     to link with the math-library, e.g.:
  207.  
  208.         vc +warpos calc.c -o calc -lm
  209.  
  210.     This distribution also contains a port of Motorola's fast libmoto
  211.     math-library, done by Andreas Heumann. If you want to use it, link
  212.     with -lppcmath before -lm, e.g.:
  213.  
  214.         vc +warpos calc.c -o calc -lppcmath -lm
  215.  
  216.     IMPORTANT: If your program uses AmigaOS-functions you have to specify
  217.     the option -amiga-align, e.g.
  218.  
  219.         vc +warpos -amiga-align myOsPrg.c
  220.  
  221.     There is also an extra.lib which includes a few functions that are
  222.     no standard ANSI functions but some people seem to regard them as
  223.     standard functions. If you use one of these add -lextra to the
  224.     commandline and read:
  225.  
  226.         vbcc/machines/amiga/doc/extralibwarpos.doc
  227.  
  228.     For further information read the files:
  229.  
  230.         vbcc/doc/vbcc.doc
  231.         vbcc/doc/vc.doc
  232.         vbcc/doc/vbccppc.doc
  233.         vbcc/machines/amiga/doc/vclibwos.doc
  234.  
  235.  
  236. SUPPORT FOR OTHER TARGETS
  237.  
  238.     This release of vbcc is able to generate code for 68k, PPC/ELF
  239.     and PPC/WarpOS. If you have installed other backends you can
  240.     choose the target by specifying another config file with the
  241.     '+'-option (e.g. +ppc).
  242.  
  243.     For further details see the corresponding docs for this target.
  244.  
  245.  
  246. CONFIGURATION
  247.  
  248.     The frontend searches for a file vc.config in ENV: and vbcc: to read
  249.     preferences. The provided sample vc.config should be usable and does
  250.     not have to be changed but you can add something to suit your personal
  251.     preferences - read
  252.  
  253.         vbcc/doc/vc.doc
  254.  
  255.     to find out more.
  256.  
  257.  
  258. MESSAGE BROWSER
  259.  
  260.     If you start the message browser with
  261.  
  262.         run vbrowse
  263.  
  264.     it will open a window with a listview gadget. If you have a pipe
  265.     command installed you can now invoke vc via tovbr, e.g.
  266.  
  267.         tovbr vc hello.c
  268.  
  269.     and any output from vc will be displayed in the window of vbrowse
  270.     rather than in the shell. It might be convenient to make an